中缀表达式构建二叉树

您所在的位置:网站首页 表达式 二叉树 中缀表达式构建二叉树

中缀表达式构建二叉树

#中缀表达式构建二叉树| 来源: 网络整理| 查看: 265

在上篇文章栈结构与四则运算中提到了通过算术表达式构造二叉树,比如 9+(3-1)\times3+10\div2 是一个标准的算术表达式,也叫中缀表达式。在通过中缀表达式构造二叉树的过程中,计算数要作为叶子节点,运算符作为中间节点,考虑算术优先级。因为正常单从一个中缀表达式是无法获得唯一的一个二叉树结构的。总结来说,中缀表达式构造二叉树有以下几个步骤和要点:

计算数作为叶子节点,运算符作为中间节点。 对算式按照优先级和计算顺序分割,计算数为叶子节点,运算符为中间节点,直到算式对应到二叉树中。 分析过程中,可以用括号辅助分割表达式,依次分析得到左右树节点(算式中一般常见括号,因此用竖线分隔更好些)。

如下对中缀表达式9+(3-1)*3+10/2构造二叉树过程: 根据优先级,分为三个部分9, +, (3-1)*3+10/2,计算数9为左叶子,运算符+为中间节点; 继续分割(3-1)*3+10/2,也是三部分(3-1)*3,+,10/2,+为根节点,左子树为(3-1)*3,右子树为10/2 继续,先拆分左侧(3-1)*3,三部分3-1,*,3,* 中间节点,3右叶子,继续可以拆分3-1; 拆分右侧,对于10/2,拆分为10,/,2,整个转换完成。

最终的树结构如图

表达式二叉树


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3